package tsb.sax;

import tsb.util.Balance;
import tsb.util.StrCmp;

/**
 *
 * verifica que el tag xml leido corresponde a un tag de inicio de elemento
 */
class ValidadorTagInicio implements IValidador {
    private ValidadorVariables vVariables;

    public ValidadorTagInicio() {
        this.vVariables = new ValidadorVariables();
    }

    public boolean validar(String str) {
        boolean resultado = true;
        this.vVariables.clear();

        try {

            if (StrCmp.esInicioFin(str, "<", ">") == false) {
                resultado = false;
            }
            else if (StrCmp.isEmpty(str, "<", ">") == true) {
                resultado = false;
            }
            else if (Balance.esbalanceada(str, '"', '"') == false) {
                resultado = false;
            }
            else if (StrCmp.tieneMasDe(str, "<", 1, true) == true) {
                resultado = false;
            }
            else if (StrCmp.tieneMasDe(str, ">", 1, true) == true) {
                resultado = false;
            }
            else if (StrCmp.tieneMasDe(str, "?", 0, true) == true) {
                resultado = false;
            }
            else if (StrCmp.tieneMasDe(str, "-", 0, true) == true) {
                resultado = false;
            }
            else if (StrCmp.tieneMasDe(str, "!", 0, true) == true) {
                resultado = false;
            }
            else if (StrCmp.tieneMasDe(str, "/", 0, true) == true) {
                resultado = false;
            }
            else if (StrCmp.validarNombreTag(str, "<", ">") == false) {
                resultado = false;
            }
            
        } catch (Exception e) {
            resultado = false;
        } finally {
            return resultado;
        }
    }
}
